import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet("/hello")
public class HelloServlet extends HttpServlet {


    @Override
    //tomcat 收到了/hello 这样的路径请求时，就会调用到 HelloServlet，于是就需要对 HelloServlet 进行实例化 ，调用init方法
    //只会实例化一次，后续都会复用之前的 HelloServlet 实例 （多次请求之后，可以看到只有一个init 有多个hello world ）

    // servlet 是服务器上执行的代码
    // 重写 init 方法，在此插入一些自己 “初始化” 相关的逻辑
    public void init() throws ServletException {
        //super.init();
        System.out.println("init");
    }

    /*重写父类的方法*/
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 这个父类的方法只是返回了一个错误页面，在此我们注释掉
//        super.doGet(req, resp);

//        这个是在服务器的控制台里打印
        System.out.println("hello world ");

//        要想把 hello world 返回到客户端，需要使用下面的代码
//        getWriter 会得到一个 Writer 对象
        //这是把数据写回到浏览器中
        resp.getWriter().write("hello world");
    }
}
